# include"head.h"
# define MAX 10
int main(int argc, char *argv[])
{   
    //线程池的创建 
    //首先完成多个线程的创建
    //主线程要做的事情：包括把连接接收
    //需要拿到创建的子线程id
    threads thread_s;
    int num=MAX;
    //所有状态的初始化
    initPthread(&thread_s,num);

    //
    int socket_fd;
    initSocket(&socket_fd);

    //
    int epoll_fd=epoll_create(1);
    addEpoll(epoll_fd,socket_fd);
    
    while(1){
        struct epoll_event events[MAX];
        int epoll_num= epoll_wait(epoll_fd,events,sizeof(events),-1);
        for(int i=0;i<epoll_num;i++){
            int cur_fd = events[i].data.fd;
            if(cur_fd==socket_fd){
                int net_fd=accept(socket_fd,NULL,NULL);
//                addEpoll(epoll_fd,net_fd);
                //!!!!存疑
                //应该是要放到队列中 队列中
                pthread_mutex_lock(&thread_s.lock);
                push_queue(net_fd,&thread_s.queue);
                //直接唤醒子线程
                pthread_cond_signal(&thread_s.cont);
                pthread_mutex_unlock(&thread_s.lock);
            }
                
        }

    }
    return 0;
}

